<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/tool.js"></script>
</head>
<body>
    
</body>
<script>
    // 封装一个 正则验证字符串的方法
    // function validate(reg,str){
    //     return reg.test(str);
    // }

    // 验证是否是正整数
    // console.log(validate(/^\d+$/,0));
    // console.log(validate(/^[a-zA-Z_]\w{5,11}$/,"a123123"));  // "用户名6-12"


    // 改为柯里化写法
    function curryValidate(reg){
        return function(str){
            return reg.test(str);
        }
    }

    // let curryValidate = reg => str => reg.test(str);
    
    // var res = curryValidate(/^\d+$/)(0);
    // console.log(res);

    // 将第一参数定死 => 第二参数手动传入
    // var isInt = curryValidate(/^\d+$/);
    // console.log(isInt);
    // console.log(isInt(10));
    // console.log(isInt(10.1));


    // var checkUser = curryValidate(/^[a-zA-Z_]\w{5,11}$/);
    // console.log(checkUser);
    // console.log(checkUser("a123123"));
    // console.log(checkUser("b1231213"));
    // console.log(checkUser("!1231213"));


    // 普通函数写法
    // function checkProp(obj,key){
    //     return obj.hasOwnProperty(key)
    // }

    // 柯里化写法  => 判断某个属性 是否存在于  某个对象中
    function checkProp(key){
        return function(obj){
            // return !!(obj[key]);
            return obj.hasOwnProperty(key);
        }
    }

    let checkName = checkProp("name");  // 定属性

    var obj = {
        // name:"张三",
        user:"张三",
        age:18,
    }

    console.log(checkName(obj));





   

</script>
</html>